{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "from matplotlib import font_manager\n",
    "\n",
    "a=[131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115,  99, 136, 126, 134,  95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117,  86,  95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123,  86, 101,  99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140,  83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144,  83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137,  92,121, 112, 146,  97, 137, 105,  98, 117, 112,  81,  97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112,  83,  94, 146, 133, 101,131, 116, 111,  84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(a, 20)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "12"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(127-3)//10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(53-1)//5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 计算组数\n",
    "d = 5 #组距\n",
    "num_bins = (max(a)-min(a))//5\n",
    "\n",
    "plt.hist(a, num_bins)\n",
    "\n",
    "# 设置x轴的刻度\n",
    "plt.xticks(range(min(a), max(a), d))\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "为什么?   \n",
    "`range()` 函数不包含 `max(a)`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 计算组数\n",
    "d = 5 #组距\n",
    "num_bins = (max(a)-min(a))//5\n",
    "\n",
    "plt.hist(a, num_bins)\n",
    "\n",
    "# 设置x轴的刻度\n",
    "plt.xticks(range(min(a), max(a)+d, d))\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "还是有问题\n",
    "\n",
    "直方图偏移!!\n",
    "\n",
    "使用网格来查找原因"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 计算组数\n",
    "d = 5 #组距\n",
    "num_bins = (max(a)-min(a))//d\n",
    "\n",
    "plt.figure(figsize=(20,8), dpi=80)\n",
    "plt.hist(a, num_bins)\n",
    "\n",
    "# 设置x轴的刻度\n",
    "plt.xticks(range(min(a), max(a)+d, d))\n",
    "\n",
    "plt.grid()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "组距每次都往右偏移了!\n",
    "- 说明图中的组距不是我们所定义的组距!\n",
    "- 我们所求得的 (max(a)-min(a)) 无法整除 num_bins , 导致条形图右移"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 计算组数\n",
    "d = 5 #组距\n",
    "num_bins = (max(a)-min(a))//d + 1\n",
    "\n",
    "plt.figure(figsize=(20,8), dpi=80)\n",
    "plt.hist(a, num_bins)\n",
    "\n",
    "# 设置x轴的刻度\n",
    "plt.xticks(range(min(a), max(a)+d, d))\n",
    "\n",
    "plt.grid()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "结果又左移了\n",
    "\n",
    "### 解决办法\n",
    "\n",
    "- 使用可以被整除的 num_bins\n",
    "- 此外, bins 可以传入 integar 还可以传入 array_like\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "频数分布直方图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 计算组数\n",
    "d = 3 #组距\n",
    "num_bins = (max(a)-min(a))//3\n",
    "\n",
    "plt.figure(figsize=(20,8), dpi=80)\n",
    "plt.hist(a, num_bins)\n",
    "\n",
    "# 设置x轴的刻度\n",
    "plt.xticks(range(min(a), max(a)+d, d))\n",
    "\n",
    "plt.grid()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "频率分布直方图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 计算组数\n",
    "d = 3 #组距\n",
    "num_bins = (max(a)-min(a))//d\n",
    "\n",
    "plt.figure(figsize=(20,8), dpi=80)\n",
    "# plt.hist(a, num_bins, normed=True) 这个库更新了，已经没有这个属性了。normed换成density\n",
    "plt.hist(a, num_bins, density=True)\n",
    "\n",
    "# 设置x轴的刻度\n",
    "plt.xticks(range(min(a), max(a)+d, d))\n",
    "\n",
    "plt.grid()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 问题\n",
    "\n",
    "- 经过统计之后的数据, 是无法使用 `plt.hist` 方法绘制直方图\n",
    "- 使用条形图解决这个问题"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "from matplotlib import font_manager\n",
    "\n",
    "interval = [0,5,10,15,20,25,30,35,40,45,60,90]\n",
    "width = [5,5,5,5,5,5,5,5,5,15,30,60]\n",
    "quantity = [836,2737,3723,3926,3596,1438,3273,642,824,613,215,47]\n",
    "\n",
    "plt.figure(figsize=(20,8), dpi=80)\n",
    "\n",
    "plt.bar(range(len(quantity)), quantity, width=width)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "问题\n",
    "- 为什么有负数呢\n",
    "- width宽度的数量 和 quantity 数量一样吗\n",
    "- 而且每组的宽度不一致,第一组和最后一组的宽度也太大了"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "12 12 12\n"
     ]
    }
   ],
   "source": [
    "print(len(interval), len(width), len(quantity))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(20,8), dpi=80)\n",
    "\n",
    "plt.bar(range(len(quantity)), quantity, width=1)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(20,8), dpi=80)\n",
    "\n",
    "plt.bar(range(len(quantity)), quantity, width=1)\n",
    "\n",
    "# 设置x轴的刻度\n",
    "_x = [i-0.5 for i in range(len(quantity))] #width=1 的一半\n",
    "_xtick_labels = interval\n",
    "plt.xticks(_x, _xtick_labels)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最后的组90应该到哪呢?  \n",
    "应该是 90+60=150"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(20,8), dpi=80)\n",
    "\n",
    "plt.bar(range(len(quantity)), quantity, width=1)\n",
    "\n",
    "# 设置x轴的刻度\n",
    "_x = [i-0.5 for i in range(len(quantity) + 1)] #width=1 的一半\n",
    "_xtick_labels = interval + [interval[-1] + width[-1]]\n",
    "plt.xticks(_x, _xtick_labels)\n",
    "\n",
    "plt.grid(alpha=0.4)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 直方图偏移\n",
    "\n",
    "#### 原理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# Generate a random array of integers between 0-9\n",
    "# data.min() will be 0 and data.max() will be 9 (not 10)\n",
    "data = np.random.randint(0, 10, 1000) #产生1000个0到9之间的数，按理来说会有10个数\n",
    "\n",
    "plt.hist(data, bins=10)\n",
    "plt.xticks(range(10))\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "您已经注意到，垃圾箱没有以整数间隔对齐。 这基本上是因为您要求在0到9之间的10个bin，与要求10个唯一值的bin不太一样。\n",
    "\n",
    "您想要的箱数与唯一值的数目不完全相同。 在这种情况下，您实际应该做的是手动指定纸槽边缘。\n",
    "\n",
    "To explain what's going on, let's skip `matplotlib.pyplot.hist` and just use the underlying `numpy.histogram` function.\n",
    "\n",
    "For example, let's say you have the values `[0, 1, 2, 3]`. Your first instinct would be to do:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([1, 1, 1, 1], dtype=int64), array([0.  , 0.75, 1.5 , 2.25, 3.  ]))"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "np.histogram([0, 1, 2, 3], bins=4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The first array returned is the counts and the second is the bin edges (in other words, where bar edges would be in your plot).\n",
    "\n",
    "Notice that we get the counts we'd expect, but because we asked for 4 bins between the min and max of the data, the bin edges aren't on integer values.\n",
    "\n",
    "- [0, 0.75) 有边界不是 1\n",
    "\n",
    "Next, you might try:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([1, 1, 2], dtype=int64), array([0., 1., 2., 3.]))"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.histogram([0, 1, 2, 3], bins=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that the bin edges (the second array) are what you were expecting, but the counts aren't. That's because the last bin behaves differently than the others, as noted in the documentation for `numpy.histogram`:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notes\n",
    "-----\n",
    "All but the last (righthand-most) bin is half-open.  In other words, if\n",
    "`bins` is::\n",
    "\n",
    "  [1, 2, 3, 4]\n",
    "\n",
    "then the first bin is ``[1, 2)`` (including 1, but excluding 2) and the\n",
    "second ``[2, 3)``.  The last bin, however, is ``[3, 4]``, which *includes* 4."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Therefore, what you actually should do is specify exactly what bin edges you want, and either include one beyond your last data point or shift the bin edges to the 0.5 intervals. For example\n",
    "\n",
    "因此，您实际应该做的是准确指定所需的bin边缘，并在最后一个数据点之外添加一个，或将bin边缘移动到0.5个间隔。 例如："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([1, 1, 1, 1], dtype=int64), array([0, 1, 2, 3, 4]))"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.histogram([0, 1, 2, 3], bins=range(5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Bin Alignment\n",
    "\n",
    "Now let's apply this to the first example and see what it looks like:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# Generate a random array of integers between 0-9\n",
    "# data.min() will be 0 and data.max() will be 9 (not 10)\n",
    "data = np.random.randint(0, 10, 1000)\n",
    "\n",
    "plt.hist(data, bins=range(11)) # <- The only difference\n",
    "plt.xticks(range(10))\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Okay, great! However, we now effectively have left-aligned bins. What if we wanted center-aligned bins to better reflect the fact that these are unique values?\n",
    "\n",
    "The quick way is to just shift the bin edges:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# Generate a random array of integers between 0-9\n",
    "# data.min() will be 0 and data.max() will be 9 (not 10)\n",
    "data = np.random.randint(0, 10, 1000)\n",
    "\n",
    "bins = np.arange(11) - 0.5\n",
    "plt.hist(data, bins)\n",
    "plt.xticks(range(10))\n",
    "plt.xlim([-1, 10])\n",
    "\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 另一种箱型图放在中间的办法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "data = np.random.randint(0, 10, 1000)\n",
    "counts = np.bincount(data)\n",
    "\n",
    "# Switching to the OO-interface. You can do all of this with \"plt\" as well.\n",
    "fig, ax = plt.subplots()\n",
    "ax.bar(range(10), counts, width=1, align='center')\n",
    "ax.set(xticks=range(10), xlim=[-1, 10])\n",
    "\n",
    "plt.grid()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 实际使用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1600x640 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 定义组距\n",
    "bin_width = 5\n",
    "\n",
    "# 将传参从组数改为传入列表\n",
    "max_a = max(a)\n",
    "min_a = min(a)\n",
    "    \n",
    "plt.figure(figsize=(20, 8), dpi=80)\n",
    " \n",
    "plt.hist(a, bins=range(min_a, max_a+bin_width, bin_width))\n",
    "plt.grid(alpha=0.5)\n",
    "plt.xticks(range(min_a, max_a+bin_width, bin_width))\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:analyze]",
   "language": "python",
   "name": "conda-env-analyze-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
